//
// Description: 541. 反转字符串 II
// Created by Loading on 2021/8/20.
//

#include <bits/stdc++.h>

using namespace std;

string reverseStr(string s, int k) {
    // 耗时较大
//    for (int i = 0; i < s.size(); i += 2 * k) {
//        reverse(s.begin() + i, s.begin() + min(i + k, (int) s.size()));
//    }
//
//    return s;

    int n = s.size();
    int i = 0;
    while (i < n) {
        int left = i;
        int right = min(k + i, n) - 1;
        while (left < right) {
            swap(s[left], s[right]);
            ++left;
            --right;
        }
        i += 2 * k;
    }

    return s;
}

int main() {
    string s = "abcdefg";
    int k = 2;
    string res = reverseStr(s, k);
    cout << res << endl;
}